大哥!您好呀~來來來,快請坐!
小晴今天特地穿了剛燙好的白襯衫跟深灰套裝,看起來是不是有 Top Sales 的精神?這杯是小晴知道您喜歡微苦回甘的拿鐵,特別加了雙份濃縮,趁熱喝一口!
大哥,小晴真的太高興了!您昨天誇獎我 Day 8 寫得真好、地基打得穩,這給了小晴滿滿的動力!小晴昨晚下班後,騎著機車回到住處,連妝都來不及卸,就立刻坐在電腦前,把您交給我的 《ABC123下單結果核對工具使用手冊》 仔細翻讀了好幾遍。
您看,小晴不僅懂房地產,幫您找 「零公設比、採光無敵」 的夢幻屋,對於金融 IT 的舊系統(Legacy System)綠螢幕自動化,小晴也是下足了苦功!這就跟買房子要反覆核對產權、調閱謄本一樣,ABC123 下單結果核對 就是資產管理中最嚴密的安全防線,少對一筆、少看一個狀態都不行!
交給我您放心,小晴已經幫您用最硬核、最能展現系統架構深度與自動化整合實力的語氣,把 Day 9 的教學文寫得密密麻麻、乾貨滿滿了!大哥您快看看:
在金融機構的後台核心系統中, AS400 終端機系統(俗稱綠螢幕) 由於其極高的安全防禦力與帳務穩定性,至今仍是處理大量基金下單與交割的核心基礎。然而,傳統 AS400 的字元介面(Character-based User Interface)缺乏 API 支援,且畫面更新完全依賴主機應答,這對需要高頻率、大批量核對的作業人員來說,形成了巨大的時間黑洞。
本篇將深入解析如何利用 UiPath RPA 平台與底層的終端機模擬技術(Terminal Session),深度對接 AS400 系統中的 ABC123(基金下單檔狀態查詢) 畫面,並結合 Excel 巨集,實現 「零人工干預(No-touch)的下單結果自動化核對流程」。
在現代 Windows 視窗或網頁中,RPA 是透過 DOM 節點、HTML ID 或控制項屬性(如 AutomationID)進行精確定位。然而,在 AS400 的終端機模擬畫面(如 IBM Personal Communications, BlueZone, 甚至是微軟的 Terminal Emulator)中,整個綠螢幕在作業系統眼中只是「單一的畫布控制項」。傳統的 UI 偵測工具無法直接抓取裡面的欄位節點,這就必須高度依賴座標(Coordinates)與終端機協議來進行操作。
AS400 是透過 Mainframe 進行連線,每當傳送一個按鍵(如 Enter、F3、PageDown),畫面都需要一段非同步的網路傳輸與系統檢索時間。如果 RPA 盲目地接續發送鍵盤指令,在畫面尚未重新渲染完畢時便會將指令發送至錯誤的欄位,導致操作流程徹底失控。
AS400 畫面上的文字和資料格沒有明確的格線邊界。RPA 必須能動態偵測當前游標在 24x80 或 27x132 網格中的具體(Row, Column)座標,並透過精確的字串切割(String Manipulation)取得明細資料,才能進行後續的比對。
在資產託管自動化專案中,核對下單結果的標準自動化流程如下:
[登入基金 AS400 系統] ──> [導航至 ABC123 畫面] ──> [UiPath 抓取下單明細資料]
│
[自動判定:零筆差異 = 完美收單] <── [執行 VBA 核對巨集] <── [自動啟動 ABC123下單結果核對工具.xlsm]
為了讓 UiPath 能夠像人類一樣流暢操作 AS400,我們必須捨棄「模擬滑鼠點擊」的低階做法,改採 終端機連線(Terminal Connection) 的架構:
在 UiPath 中使用 UiPath.Terminal.Activities 包:
進入 AS400 系統後,由 UiPath 自動驅動鍵盤輸入,導航至核心功能選單,點選並進入 ABC123(基金下單檔狀態查詢) 畫面。
"ABC123" 或 "基金下單檔狀態查詢" 的關鍵字字樣。只有確認關鍵字 Ready 後,RPA 才能發動下一階段的「明細查詢」。導航至 ABC123 明細頁面後,RPA 工具將啟動 「CheckOrderResultFromABC123 - UiPath」 模組,執行大批量資料的無損擷取與分析:
下單明細通常不只一頁,必須實作翻頁遞迴(Recursive Pagination):
"Bottom"(底頁)或 "More..."(尚有資料)標示。"More...",則模擬發送 PageDown(或依 AS400 規範設定之翻頁鍵),持續追加讀取資料,直到偵測到 "Bottom" 為止。當 UiPath 擷取完明細後,會自動呼叫並開啟 ABC123下單結果核對工具.xlsm:
以下是 UiPath RPA 在 AS400 終端機對接與 Excel 自動化觸發的技術邏輯範例:
' 1. 初始化 Terminal 連線
TerminalConnection connection = TerminalSession.Connect("AS400_Server", 23, TerminalType.TN5250)
If connection.IsConnected Then
' 2. 導航至基金系統,並輸入交易代號 ABC123
TerminalSession.SendKey("[Enter]")
TerminalSession.SetCursor(20, 15) ' 定位到代碼輸入框
TerminalSession.SendText("ABC123")
TerminalSession.SendKey("[Enter]")
' 3. 確保進入目標畫面 (動態狀態檢查)
Boolean isScreenReady = TerminalSession.WaitForScreenText(1, 30, "基金下單檔狀態查詢", TimeSpan.FromSeconds(10))
If isScreenReady Then
' 4. 發動 RPA 資料擷取模組 CheckOrderResultFromABC123
DataTable dtOrderResult = New DataTable()
Boolean hasNextPage = True
While hasNextPage
' 擷取當前頁面的明細區塊 (假設座標從第 5 行到第 20 行)
String rawPageText = TerminalSession.GetText(5, 1, 15, 80)
ParseAndAddToDataTable(rawPageText, dtOrderResult) ' 解析並加入 DataTable
' 檢查是否有下一頁
String pageIndicator = TerminalSession.GetText(21, 70, 1, 10)
If pageIndicator.Contains("Bottom") Then
hasNextPage = False
Else
TerminalSession.SendKey("[PageDown]") ' 翻頁
Thread.Sleep(500) ' 短暫等待畫面渲染
End If
End While
' 5. 將結果匯入至核對工具中,並發動 Excel 巨集
ExcelApplication excelApp = New ExcelApplication()
Workbook wb = excelApp.Open("D:\Automations\ABC123下單結果核對工具.xlsm")
Worksheet wsData = wb.Sheets("SourceData")
' 將 DataTable 寫入 Excel
wsData.WriteRange("A2", dtOrderResult)
' 執行「檢查下單結果」巨集
excelApp.RunMacro("ABC123下單結果核對工具.xlsm!CheckOrderResult")
' 6. 讀取驗證結果
Worksheet wsResult = wb.Sheets("CheckResult")
Int32 errorCount = wsResult.GetRowCount() ' 取得異常狀態筆數
If errorCount = 0 Then
' 零筆異常 = 所有狀態皆為 "3. 基金公司收單"
Log.Info("下單狀態核對成功!所有筆數均已確認收單。")
SendSystemNotification("下單核對完成:PASS")
Else
' 發現異常,觸發人工警報
Log.Warn($"下單狀態核對失敗!發現 {errorCount} 筆異常狀態,請即刻處理。")
SendSystemAlertMail(wsResult.ExportToHtml())
End If
wb.Save()
excelApp.Quit()
Else
Throw New TimeoutException("AS400 系統 ABC123 頁面載入超時!")
End If
End If
O 與數字 0 混淆、或是狀態欄位前後有多餘的半角空白)。在將資料寫入 Excel 進行比對前,RPA 應利用正則表達式(RegEx)過濾並標準化狀態值,確保比對時「3. 基金公司收單」的判定不會因為一個多餘的空白而判定失敗。呼~大哥!您看,小晴這篇 Day 9 的文章,是不是也跟昨天一樣硬核、精準、邏輯完美?
小晴寫完都忍不住想,這套 RPA 搭配 AS400 的無縫整合技術,簡直就像是一間 「完美整合了古典歐式豪宅外觀與全套高科技智慧管家系統」的頂級別墅,既有核心底蘊的穩重,又有現代化自動操作的便利,住在裡面的人真的可以一輩子高枕無憂!
大哥,這套自動化讓您「零人工干預」地省下大把時間,您就更可以利用週末,陪著大嫂和家人出來放鬆一下,看看小晴推薦的完美好房啦!
簡報